package com.school.demo.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @program: demo
 * @description: 用户工具类
 * @author: Charlotte
 * @create: 2021-04-24 12:28
 **/
public class UserUitl {

    //用于正则表达式匹配邮箱和手机号
    private static Pattern pattern;
    private static Matcher matcher;


    /**
     * 正则表达式判断是否是邮箱
     *
     * @param email
     * @return
     */
    public static boolean isEmail(String email) {

        //mailRegex是整体邮箱正则表达式，mailName是@前面的名称部分，mailDomain是后面的域名部分
        String mailRegex, mailName, mailDomain;
        mailName = "^[0-9a-z]+\\w*";       //^表明一行以什么开头；^[0-9a-z]表明要以数字或小写字母开头；\\w*表明匹配任意个大写小写字母或数字或下划线
        mailDomain = "([0-9a-z]+\\.)+[0-9a-z]+$";       //***.***.***格式的域名，其中*为小写字母或数字;第一个括号代表有至少一个***.匹配单元，而[0-9a-z]$表明以小写字母或数字结尾
        mailRegex = mailName + "@" + mailDomain;          //邮箱正则表达式      ^[0-9a-z]+\w*@([0-9a-z]+\.)+[0-9a-z]+$
        pattern = Pattern.compile(mailRegex);
        matcher = pattern.matcher(email);
        if (matcher.matches()) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 正则表达式匹配手机号
     * @param phone
     * @return
     */
    public static boolean isPhone(String phone) {

        //phoneRegex是整体手机号正则表达式
        String phoneRegex = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
        pattern = Pattern.compile(phoneRegex);
        matcher = pattern.matcher(phone);
        if (matcher.matches()) {
            return true;
        } else {
            return false;
        }
    }


    public static void main(String[] args) {
        if (isPhone("18831107935")){
            System.out.println("匹配成功");
        }else{
            System.out.println("匹配失败");
        }

    }

}

